print('\033[0:33m姓名:袁兆华 学号: 20190751028\033[m')
print("1、使用列表推导式，列表中存储100以内能被7整除的正整数，输出列表，即列表中所元素之和。")
s = 0
lst = []
for i in list(range(1, 101)):
    if i % 7 == 0:
        lst.append(i)
        s += i
print("所有能被7整除的数列表式为:", lst)
print("列表中总数之和为:", s)
print()

print('2.利用列表，输出斐波那契数列前20项，并求和。')
def fib(n):
    sum = 0
    lst5 = [1]
    t1,t2 = 0,1
    for i in range(1, n):
        temp = t1 + t2
        sum += temp
        lst5.append(temp)
        t1,t2 = t2,temp
    print("数列为:",lst5)
    print("和为:", sum + 1)
if __name__ == '__main__':
    n = int(input("请输入斐波拉契数列项数:"))
    fib(n)

print('3.查找动物索引位置')
def fun():
    lst = ['elephant', 'monkey', 'snake', 'tiger']
    print(lst)
    flag = False
    animal = input("请输入您要查找的动物:")
    for i in range(len(lst)):
        if lst[i] == animal:
            print(f"您要查找的动物 {animal} 的下标索引位置为:", i)
            flag = True
            break
    if flag == False:
        print("很抱歉,此列表中没有此动物名字")

if __name__ == '__main__':
    fun()
print()

print('5.列表[6,25,3,15,2,36,8,41,33,13]中的最后2个元素依次移到列表的首部，然后将列表降序排序后输出显示')
list1 = [6, 25, 3, 15, 2, 36, 8, 41, 33, 13]
print('原列表为:', list1)
list2 = list1[-2:]
list2.extend(list1[:-2])
print('重组后的列表为:', list2)
list2.sort(reverse=True)
print('降序排序后的列表为:', list2)
print()

print('6.删除列表[9,26,5,15,4,36,8,41,34,13]中的所有素数。')
import math
list3 = [9,26,5,15,4,36,8,41,34,13]
list4 = []
for i in range(len(list3)):
    # print(list3[i])
    for j in range(2, int(math.sqrt(list3[i])) + 1):
        if list3[i] % j == 0:
            list4.append(list3[i])
            break
        else:
            pass
print('原列表为:', list3)
print('删除素数之后的列表为:', list4)
print()

print('已知两个3行3列的矩阵（使用列表来存储），实现其对应位置的数据相加，并返回一个新矩阵。')
X = [[7,4,6],
    [15,6,3],
    [11,2,9]]
Y = [[2,1,5],
    [5,6,7],
    [7,3,4]]
result = [[0,0,0],
         [0,0,0],
         [0,0,0]]
# 迭代输出行
for i in range(len(X)):
    # 迭代输出列
    for j in range(len(X[0])):
        result[i][j] = X[i][j] + Y[i][j]

for r in result:
    print(r)
